package com.sudo.api._admin;

import com.sudo.common.enums.SysJobStatus;
import com.sudo.common.enums.SysServerStatus;
import com.sudo.common.enums.SysServerType;
import com.sudo.common.utils.JsonRes;
import com.sudo.dao.admin.model.bo.LocalDateTimeBO;
import com.sudo.dao.admin.model.vo.LocalDateTimeVO;
import com.sudo.starter.ratelimit.annotation.ApiIdempotent;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;

/**
 * 获取枚举状态
 *
 * @author DayDayUp
 * create on 2023-06-16
 **/
@Api(value = "获取枚举状态",tags = {"获取枚举状态"})
@RestController
@RequestMapping("enum")
public class EnumController {

    @ApiOperation(value = "获取服务状态和注册类型",notes = "获取服务状态和注册类型",httpMethod = "GET")
    @GetMapping("/getScheduleEnumList")
    public JsonRes getScheduleEnumList() {

        Map<String, Object> enumMap = new HashMap<>();
        enumMap.put(SysJobStatus.class.getSimpleName(), SysJobStatus.getEnumMap());
        enumMap.put(SysServerStatus.class.getSimpleName(), SysServerStatus.getEnumMap());
        enumMap.put(SysServerType.class.getSimpleName(), SysServerType.getEnumMap());
        return JsonRes.ok(enumMap);
    }

    @ApiIdempotent
    @PostMapping("/paramLocalDateTime")
    public JsonRes paramLocalDateTime(LocalDateTime localDateTime) {
        LocalDateTimeVO localDateTimeVO = new LocalDateTimeVO();
        localDateTimeVO.setLocalDate(LocalDate.now());
        localDateTimeVO.setLocalDateTime(LocalDateTime.now());
        localDateTimeVO.setName("1221");
        return JsonRes.ok(localDateTimeVO);
    }

    @PostMapping("/testLocalDateTime")
    public JsonRes testLocalDateTime(LocalDateTimeBO localDateTimeBO) {
        LocalDateTimeVO localDateTimeVO = new LocalDateTimeVO();
        localDateTimeVO.setLocalDate(LocalDate.now());
        localDateTimeVO.setLocalDateTime(LocalDateTime.now());
        localDateTimeVO.setName("1221");
        return JsonRes.ok(localDateTimeVO);
    }

    @PostMapping("/testLocalDateTime1")
    public JsonRes testLocalDateTime1(@RequestBody LocalDateTimeBO localDateTimeBO) {
        LocalDateTimeVO localDateTimeVO = new LocalDateTimeVO();
        localDateTimeVO.setLocalDate(LocalDate.now());
        localDateTimeVO.setLocalDateTime(LocalDateTime.now());
        localDateTimeVO.setName("1221");
        return JsonRes.ok(localDateTimeVO);
    }
}
